using System;
using System.Collections.Generic;
namespace ServiceStack.Messaging
{
	public interface IMessageService : IDisposable
	{
		IMessageFactory MessageFactory
		{
			get;
		}
		List<Type> RegisteredTypes
		{
			get;
		}
		void RegisterHandler<T>(Func<IMessage<T>, object> processMessageFn);
		void RegisterHandler<T>(Func<IMessage<T>, object> processMessageFn, Action<IMessageHandler, IMessage<T>, Exception> processExceptionEx);
		IMessageHandlerStats GetStats();
		string GetStatus();
		string GetStatsDescription();
		void Start();
		void Stop();
	}
}
